package com.day17;


import org.junit.Test;

import java.io.UnsupportedEncodingException;
import java.util.Arrays;

public class StringMethodTest {

    @Test
    public void test1() throws UnsupportedEncodingException {
        String s1 = "helloworld";
        //输出字符串的长度
        System.out.println(s1.length());

        //返回某索引处的字符
        System.out.println(s1.charAt(2));

        //判读字符串是否为空
        System.out.println(s1.isEmpty());

        //转换成小写toLowerCase()
        System.out.println(s1.toLowerCase());

        //转换成大写toUpperCase()
        System.out.println(s1.toUpperCase());

        //返回字符串的副本，去掉首尾空格
        String s3 = " hh eew ll o wew pew ";
        System.out.printf(s3.trim());

        //忽略大小写的值比较
        System.out.println("s1.equalsIgnoreCase(s3) = " + s1.equalsIgnoreCase(s3));

        //连接字符串concat
        System.out.println(s1.concat(s3.trim()));

        //比较两个字符串的大小
        System.out.println(s1.compareTo(s3));

        //截取字符串subString
        System.out.println(s1.substring(1,3));

        //测试字符串是否以指定的后缀结束的endWith()
        boolean endsWith = s1.endsWith("ld");
        System.out.println(endsWith);

        //测试字符串是否以指定的后缀开始的
        System.out.println(s1.startsWith("he"));

        //测试字符串是否包含指定的char值序列时contains()
        boolean contains = s1.contains("h");
        System.out.println(contains);

        //返回此字符在字符串中第一次出现的索引还有lastIndexOf,如果没找到返回-1
        System.out.println(s1.indexOf("h"));


        //替换指定字符
        String replace = s1.replace("h", "a");
        System.out.println(replace);

        //String与Integer等类型互相转换
        Integer a = 2;
        String string = a.toString();
        String string1 = Integer.toString(a);
        String valueOf = String.valueOf(a);

        //当我们要把String转换成Integer时，一定要做非空判断
        Integer integer = Integer.valueOf(string1);
        int parseInt = Integer.parseInt(string);

        /**
         * String 与 char[] 之间的转换
         * 调用String的toCharArray()方法
         */
        char[] chars = string.toCharArray();

        //char[]转换成String，直接调用构造器就好了
        String s = new String(chars);

        /**
         * String与byte[]数组转换
         * String --> byte[]: 调用String的getBytes
         */
        String string2 = "Aabc123";
        byte[] bytes = string2.getBytes();
        System.out.println(Arrays.toString(bytes));

        //使用gbk字符集编码
        /**
         * 编码:字符串转换为字节
         * 解码:字节转换为字符串
         */
        byte[] gbks = string2.getBytes("gbk");


    }

    public static void main(String[] args) {

        Demo demo = new StringMethodTest().new Demo();


    }

    class Demo{
        public void demo(){
            System.out.println("内部类");
        }
    }
}
